package com.fancy.recommendation.dto.request;

import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.Map;

/**
 * 用户行为记录请求DTO
 *
 * @author fancy
 */
@Data
public class UserBehaviorRequestDTO {

    /**
     * 用户ID
     */
    @NotNull(message = "用户ID不能为空")
    private Long userId;

    /**
     * 行为类型
     */
    @NotBlank(message = "行为类型不能为空")
    private String actionType;

    /**
     * 目标ID
     */
    @NotNull(message = "目标ID不能为空")
    private Long targetId;

    /**
     * 目标类型
     */
    @NotBlank(message = "目标类型不能为空")
    private String targetType;

    /**
     * 行为权重值
     */
    private BigDecimal behaviorValue = BigDecimal.ONE;

    /**
     * 上下文信息
     */
    private Map<String, Object> contextInfo;
}
